/**
 * 公交、站点查询协议工具类
 */
import ajaxAsync from '../../../utils/ajaxAsync';
import SearchInfo from '../models/search-info';

/**
 * 粗略查询公交站点（各5条）
 * @param {String} text 查询的文字
 * @returns {Promise<{busCount: (*|number), stationList: Array, stationCount: number, busList: Array}>}
 */
async function getImportDataRough(text) {
  let res = await ajaxAsync('/bus/import', { IMPORT: text, PAGE_CAPACITY: 5 })
  let busList = []
  let stationList = []
  if (res.BUS_LIST) {
    // 公交列表
    busList = res.BUS_LIST.map(element=>{
      return new SearchInfo(element.ID, element.NAME, element.TYPE)
    })
  }
  if (res.STATION_LIST) {
    // 站点列表
    stationList = res.STATION_LIST.map(element=>{
      return new SearchInfo(element.ID, element.NAME, element.TYPE, element.LATITUDE, element.LONGITUDE)
    })
  }

  return {
    busList,
    stationList,
    busCount: res.BUS_COUNT || 0,
    stationCount: res.STATION_COUNT || 0
  }
}

/**
 * 公交或站点详细查询
 * @param {String} text 查询的文字
 * @param {Number} pageNum 页数
 * @param {Number} pageSize 单页条数
 * @param {Number} type 查询的类型（1、2公交，3车站）
 * @returns {Promise<{count: number, list: Array}>}
 */
async function getImportDataFull(text, pageNum, pageSize, type) {
  let res = await ajaxAsync('/bus/import', {
    IMPORT: text,
    PAGE_CAPACITY: pageSize,
    PAGE_INDEX: pageNum
  })
  let list = []
  let count = 0
  if (type === 1 || type === 2) {
    // 返回公交列表
    if (res.BUS_LIST) {
      list = res.BUS_LIST.map(element=>{
        return new SearchInfo(element.ID, element.NAME, element.TYPE)
      })
    }
    count = res.BUS_COUNT || 0
  } else {
    // 返回车站列表
    if (res.STATION_LIST) {
      list = res.STATION_LIST.map(element=>{
        return new SearchInfo(element.ID, element.NAME, element.TYPE, element.LATITUDE, element.LONGITUDE)
      })
    }
    count = res.STATION_COUNT || 0
  }
  return {
    list,
    count
  }
}

export { getImportDataRough, getImportDataFull }